package controller;

import java.io.IOException;
import java.util.HashMap;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import model.Cliente;
import model.ItemPedido;
import model.Pagamento;
import model.Pedido;
import dao.PedidoDAO;

@WebServlet("/FecharPedido")
public class PedidoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public PedidoServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	@SuppressWarnings("unchecked")
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		HttpSession sessao = request.getSession(true);
		
		Cliente cliente_logado = (Cliente) sessao.getAttribute("cliente_logado");
		
		double valor_total = (double) sessao.getAttribute("valorTotal");
		
		// TODO Pegar a forma de pagamento e o troco para setar na sessao;
		
		PedidoDAO pDAO = new PedidoDAO();
		
		String tipo_pagamento = request.getParameter("formaDePagamento");
		double valorTroco = 0;
		
		if(request.getParameter("valorTroco") != "") {
			valorTroco = Double.parseDouble(request.getParameter("valorTroco"));
		}
		
		Pagamento pagamento = pDAO.recuperarPagamento(tipo_pagamento);
		
		Pedido novo_pedido = new Pedido(cliente_logado, pagamento, valorTroco, valor_total);

		int cod_pedido = pDAO.CadastrarNovoPedido(novo_pedido);
		
		HashMap<String, ItemPedido> itens = (HashMap<String, ItemPedido>) sessao.getAttribute("itens");
		
		for (ItemPedido item : itens.values()) {
			item.setCod_pedido(cod_pedido);
			pDAO.CadastrarNovoItem(item);
		}
		
		sessao.removeAttribute("itens");
		sessao.removeAttribute("detalhesPizza");
		sessao.removeAttribute("valorTotal");
		
		RequestDispatcher rd = request.getRequestDispatcher("/pedidos.jsp");
		
		rd.forward(request,response);
		
	}

}